Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Camera Console Recalibration and Bodycameras #3952

Merged
merged 49 commits into from
Jan 29, 2025

Conversation

zimon9
Copy link
Contributor

@zimon9 zimon9 commented Jan 1, 2025

About The Pull Request

This change modifies camera consoles so that they can take a custom network input. Camera consoles were also modified to get closer in parity to the SecurEye app. Tablets were given the ability to download securEye.

Camera Consoles image
SecurEye image

Static cameras were modified so that using a multitool on one with its panel open now presents several new options. One can copy a network that a camera is set to onto a multitool, transfer a saved network into a camera, or even set a new network entirely.
image
They were also given a new variable, can_transmit_across_z_levels, which defaults to false. This variable is for varedits, and a potential future addition that may enable transmission across Z-levels for some cost.

A new portable type of camera was also added, the body camera. It can be activated or deactivated by being alt-clicked, and its tag or network settings can be modified if a multitool is used on it.
They can be purchased from the outpost cargo market at a rate of two units for 250 credits.

Bodycameras can be worn in your pockets, your coat/armor, security belts or webbings, or a helmet, but they get obscured when put into a bag, a box, or your boots.

They have a view range of 5, which is 2 less than camera structures.

Bodycamera_Active_Deactivated_Demo.mp4
Bodycamera_Demo_Trackedmovement_Cropped.mp4

This PR by Timberpoes proved instrumental in solving a major problem during the development process:
tgstation/tgstation#52767

The bodycamera sprite is modeled after the handheld radio sprite made by @rye-rice in this PR:
#2610
image
I'm not a good pixel artist, so any feedback here is appreciated, on top of feedback with regards to anything else about this PR.

Why It's Good For The Game

It would be nice to be able to track your crew more effectively, be it if you were to send them out to scrap a derelict, or to secure contested territory. This is something that Command or Foremen that want to oversee operations might find useful, as it can be kind of boring to not be able to see your crew when they're at work. This should help that issue.

Changelog

🆑 Rye-Rice, Timberpoes
add: Added bodycameras
add: Added the ability to set custom networks on cameras and camera consoles
code: Made camera consoles and SecurEye have better parity
/:cl:

…bility to input networks after copying them from cameras, add ability to change networks on installed cameras, implement BodyCameras and Watchdog system
…e journey. tgstation/tgstation#52767 was helpful in the final hurdle. Now, one last challenge remains. The bodycamera needs to be updated periodically, which will need to be done via a subsystem. The bodycamera also needs to be part of the allowed types for some belt/webbing types and helmet types.
… up some useless code, reduces the sight range of bodycameras by two tiles
…AHAHAHHAHAHAHAHHAHA

I'm finally free...................................................................
@zimon9 zimon9 requested review from FalloutFalcon and a team as code owners January 1, 2025 04:15
@github-actions github-actions bot added DME Edit Sprites A bikeshed full of soulless bikes. TGUI Sound USSR Anthem 2.66 MB file. Code change Watch something violently break. labels Jan 1, 2025
/obj/item/bodycamera/examine(mob/user)
. += ..()
. += "The body camera is currently [status ? "<span class='green'>ON</span>" : "<span class='red'>OFF</span>"]. Ctrl-Click to toggle its status."
. += "The body camera is set to a nametag of '[c_tag]'. Use a multitool on [src] in order to set a new nametag."
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would put the nametag/network stuff in the examine_more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that'd be better, yea
I've made that change now

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm a little conflicted on this, actually. From what I understand, no other item has an examine-more description, so this kind of breaks tradition, and I'm loathe to make things that aren't consistent with other things in the game. Inconsistency is one of the things that annoys me about older things in the game.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

some objects use examine_mores. I think its fine to expand on it, especially since I shouldn't be able to tell the technical details on it from a cursory glance.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The items that do that seem to make it imply that examining more is less of something required, and more of a bit of added flavor. That, or it's a way for someone to interact with an object without having to click on it. As for being able to see technical details, I liken it to how you can see a radio's frequency setting by examining it, in that the details of the network setting and the tag setting are on a small display on the body of the device. However, it may be good to make it less of something that can be seen quite as easily, yeah. From a standpoint of someone that might be newer to the game, though, it might be a little confusing to leave it like this, though.

In any case, this isn't really a big deal or anything, but it's something I've been thinking about. I do think there is a lot of room for improvement with the design of this.

@github-actions github-actions bot added the Merge Conflict Use Git Hooks, you're welcome. label Jan 19, 2025
Copy link
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@github-actions github-actions bot removed the Merge Conflict Use Git Hooks, you're welcome. label Jan 19, 2025
@MassiveMen
Copy link
Contributor

Small issue. The bodycams dont have a distance check. You can turn them on as long as you see them.

@Ical92
Copy link
Contributor

Ical92 commented Jan 20, 2025

Small issue. The bodycams dont have a distance check. You can turn them on as long as you see them.

The grinch returns ..

@zimon9
Copy link
Contributor Author

zimon9 commented Jan 20, 2025

Small issue. The bodycams dont have a distance check. You can turn them on as long as you see them.

Bluetooth activation. Lovely.

@@ -7,14 +7,18 @@
light_color = COLOR_SOFT_RED

var/list/network = list("ss13")
var/tempNetwork = list("")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

im a little sleepy but everything about this var is silly. For now- camel_case please.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeaa, you're right, let me fix that, thank you

@FalloutFalcon FalloutFalcon added this pull request to the merge queue Jan 29, 2025
Merged via the queue into shiptest-ss13:master with commit c773321 Jan 29, 2025
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Code change Watch something violently break. DME Edit Sound USSR Anthem 2.66 MB file. Sprites A bikeshed full of soulless bikes. TGUI
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants